package com.ruoyi.common.constant;

import java.util.HashMap;
import java.util.Map;

public class TypeConstant {

    // 部门级别
	public static final int ORG_LEVEL_0 = 0;// 总公司
	public static final int ORG_LEVEL_1 = 1;// 分公司
	public static final int ORG_LEVEL_2 = 2;// 区
	public static final int ORG_LEVEL_3 = 3;// 部
    public static final int ORG_LEVEL_4 = 4;// 分组


    public static final String ROLE_ID_00 = "admin"; // 管理员
    public static final String ROLE_ID_1 = "boss"; // 公司总负责人
    public static final String ROLE_ID_100 = "storeManager"; // 门店长
    public static final String ROLE_ID_2 = "branchGM"; // 分公司总负责人
    public static final String ROLE_ID_3 = "areaLeader"; // 团队长
    public static final String ROLE_ID_4 = "manager"; // 部长
    public static final String ROLE_ID_40 = "internSupervisor"; // 实习部长
    public static final String ROLE_ID_5 = "salesman"; // 业务员
    public static final String ROLE_ID_6 = "administration"; // 行政
    public static final String ROLE_ID_7 = "finance"; // 财务
    public static final String ROLE_ID_8 = "apprentice"; // 学徒
    public static final String ROLE_ID_9 = "admin"; // 系统管理员
    public static final String ROLE_ID_10 = "channelOperations"; // 渠道运营
    public static final String ROLE_ID_98 = "branchManager"; // 分公司负责人
    public static final String ROLE_ID_99 = "externalChannelOperations"; // 外部渠道运营
    public static final String ROLE_ID_101 = "incomingAssistant"; // 进件助理
    public static final String ROLE_ID_102 = "creditSpecialist"; // 征信专员
    public static final String ROLE_ID_103 = "personnelMatters"; // 人事
    public static final String ROLE_ID_104 = "personnelManager"; // 人事部长
    public static final String ROLE_ID_105 = "channelsupervisor"; // 渠道部长
    public static final String ROLE_ID_106 = "administrativeAuthorities"; // 行政部长
    public static final String ROLE_ID_999 = "nonAttendance"; // 非考勤角色
    public static final String ROLE_ID_108 = "maintenance"; // 升级维护
	// 时间类型
	public static final int CONDITION_TYPE_DATE = 0;
	public static final int CONDITION_TYPE_DATETIME = 1;

	// 短信类别
	public static final String BUSINESS_TYPE_LOGIN = "1"; // 登录
	public static final String BUSINESS_TYPE_NEWDATA = "2"; // 新数据短信
	public static final String BUSINESS_TYPE_VALICODE = "3"; // 验证码短信
	public static final String BUSINESS_TYPE_CUST = "4"; // 通知客户短信

	/** 系统资源 */
	public static final String RESOURCE_TYPE_MENU = "2";

	public static final String FLAG_YES = "1"; // 是
	public static final String FLAG_NO = "0"; // 否
    public static final String FLAG_YES_2 = "2"; // 加入垃圾库中间状态
    public static final String FLAG_YES_3 = "3"; // 从垃圾库中彻底删除后的状态

    public static final String STAR_LEVEL_1 = "1";//无效客户
	public static final String STAR_LEVEL_6 = "6";//转介绍客户
    public static final String CHL_QRCODE = "chlqrcode";//二维码推广渠道

	/**有无**/
	public static Map<String, String> hasOrNo = null;
	/**性别**/
	public static Map<String, String> sex = null;
	/**付费方式**/
	public static Map<String, String> payType = null;
	/**分配操作状态**/
	public static Map<String, String> operStatus = null;
    /**文件类型**/
    public static Map<String, String> fileType = null;
    /**资料状态**/
    public static Map<String, String> fileStatus = null;

    /**拦截器白名单url**/
    public static Map<String, String> NoNeedUrlMap = null;

    /**报表类别**/
    public static final int REPORTER_CHANNELCUST_DETAIL = 1001; // 客户明细数据-渠道客户
    public static final int REPORTER_INTRODUCECUST_DETAIL = 1002; // 客户明细数据-转介客户

    public static Map<Integer, String> reportType = null;
    public static final int REPORTER_INNER_DATA = 1; // 日内部数据统计报表
    public static final int REPORTER_CHANNEL_DISTRIBUTE = 2; // 分配来源统计报表
    public static final int REPORTER_CHANNEL_VISIT = 3; // 渠道上门率统计报表
    public static final int REPORTER_CHANNEL_CREATE = 4; // 渠道创收和转化率报表
    public static final int REPORTER_USER_DATAS = 5; // 个人数据统计
    public static final int REPORTER_BANK_RANIKING = 6; // 机构放款排行
    public static final int REPORTER_CHANNEL_CONVERT = 7; // 渠道转化率产能分析
    public static final int REPORTER_INTRODUCE_CONVERT = 8; // 转介绍转化率产能分析
    public static final int REPORTER_INTRODUCE_CREATE = 9; // 转介绍渠道创收和转化率报表
    public static final int REPORTER_CHANNEL_DISTRIBUTE_V2 = 10; // 分配来源统计报表V2
    public static final int REPORTER_CHANNEL_CITY = 11; // 渠道城市数据统计
    public static final int REPORTER_USER_CHANNEL = 12; // 渠道星级数据统计-渠道用户使用
    public static final int REPORTER_INNERCUSTDEBTLIMIT = 13; // 日内部数据统计（额度）报表
    public static final int REPORTER_CHANNELDEBTLIMIT_DISTRIBUTE = 14; // 分配来源统计（额度）报表
    public static final int REPORTER_USER_COST_STATICS = 15; // 用户成本统计报表
    public static final int REPORTER_ELITE_LIST_EMP_STATICS = 16; // 精英榜-业务员前20
    public static final int REPORTER_ELITE_LIST_DEPART_STATICS = 17; // 精英榜-二级部门前10
    public static final int REPORTER_ELITE_LIST_DEPART_STATICS4 = 86; // 精英榜-三级部门前10

    public static final int REPORTER_ELITE_LIST_AREA_STATICS = 18; // 精英榜-一级部门
    public static final int REPORTER_ELITE_LIST_SUBORG_STATICS = 23; // 精英榜-一级部门
    public static final int REPORTER_USER_COST_CHANNEL_STATICS = 19; // 用户数据渠道成本统计
    public static final int REPORTER_CUST_URL_TRACK_STATICS = 20; // 渠道数据URL统计-渠道用户使用, 20201216: 新增 --
    //public static final int REPORTER_CUST_APPLY_TIME_STATICS = 21; // 渠道数据申请时间统计-渠道用户使用, 20201216: 新增 --
    //public static final int REPORTER_CUST_DISTRIBUTE_TIME_STATICS = 22; // 渠道数据分配时间统计-渠道用户使用, 20201216: 新增 --
    public static final int REPORTER_CUST_TIME_TYPE_STATICS = 21; // 渠道数据申请时间、分配时间统计-渠道用户使用, 20201216: 新增 --
    public static final int REPORTER_CHANNEL_LOCAL_STATICS = 40; // 渠道本地人标识统计

    public static final int REPORTER_ORG_DISTRIBUTE_STATICS = 22; // 机构分配来源统计报表, 20210606: 新增 --
    public static final int REPORTER_ORG_CHANNELTYPE_STATICS = 80; // 媒体分配来源统计报表  部门, 202404: 新增 --
    public static final int REPORTER_PERSON_CHANNELTYPE_STATICS = 81; // 媒体分配来源统计报表  个人, 202404: 新增 --

	static {
		if (hasOrNo == null) {
			hasOrNo = new HashMap<String, String>();
			hasOrNo.put("1", "未知");
			hasOrNo.put("0", "未知");
            hasOrNo.put("", "未知");
            hasOrNo.put(null, "未知");
		}
		if (sex == null) {
			sex = new HashMap<String, String>();
			sex.put("0", "无");
			sex.put("1", "男");
			sex.put("2", "女");
		}
		if (payType == null) {
			payType = new HashMap<String, String>();
			payType.put("1", "代扣");
			payType.put("2", "现金");
		}
		if (operStatus == null) {
			operStatus = new HashMap<String, String>();
			operStatus.put("0", "可撤销");
			operStatus.put("1", "已撤销");
		}
        if (fileType == null) {
            fileType = new HashMap<String, String>();
            fileType.put("1", "文档");
            fileType.put("2", "录音");
            fileType.put("3", "视频");
        }
        if (fileStatus == null) {
            fileStatus = new HashMap<String, String>();
            fileStatus.put("1", "待审核");
            fileStatus.put("2", "有效");
            fileStatus.put("3", "无效");
        }
        if (NoNeedUrlMap == null) {
            NoNeedUrlMap = new HashMap<>();
            NoNeedUrlMap.put("to4UserQRCode!list.action", "");
            NoNeedUrlMap.put("to4UserQRCode!generateQRCode.action", "");
            NoNeedUrlMap.put("to4CustIncomingInfo!list.action", "");
            NoNeedUrlMap.put("to4UserBusinessLog!list.action", "");
            NoNeedUrlMap.put("to4UserBusinessLog!edit.action", "");
            NoNeedUrlMap.put("to4UserBusinessGoal!list.action", "");
            NoNeedUrlMap.put("to4UserBusinessGoal!edit.action", "");
            NoNeedUrlMap.put("welcome!welcome.action", "");
            NoNeedUrlMap.put("welcome!logoPage.action", "");
            NoNeedUrlMap.put("login!login.action", "");
            NoNeedUrlMap.put("login!loginOut.action", "");
            NoNeedUrlMap.put("login!switchSysStatus.action", "");
            NoNeedUrlMap.put("to4BaseSysUserApply!idVerify.action", "");
            NoNeedUrlMap.put("to4FmisHeadcountInfo!list2.action", "");
            NoNeedUrlMap.put("to4FmisAttdncInfo!list.action", "");
            NoNeedUrlMap.put("to4BaseSysUserApply!list.action", "");
        }
		if (reportType == null) {
            reportType = new HashMap<Integer, String>();
            reportType.put(1, "CustInfo.starlevelDataStatics");// 日内部数据统计报表
            reportType.put(2, "CustInfo.channelDataStatics");// 分配来源统计报表
            reportType.put(3, "CustInfo.channelVisitStatics");// 渠道上门率统计报表
            reportType.put(4, "CustInfo.channelCreateStatics_v2");// 渠道创收和转化率报表
            reportType.put(5, "CustInfo.userDataStatics");// 个人数据统计
            reportType.put(6, "CustInfo.loanBankStatics");// 机构放款排行
            reportType.put(7, "CustInfo.channelConvertStatics");// 渠道转化率产能分析
            reportType.put(8, "CustInfo.introduceConvertStatics");// 转介绍转化率产能分析
            reportType.put(9, "CustInfo.introduceCreateStatics");// 转介绍渠道创收和转化率报表
            reportType.put(10, "CustInfo.channelDataStaticsV2");// 分配来源统计报表V2
            reportType.put(11, "CustInfo.channelAgencyStatics");// 渠道城市数据统计
            reportType.put(12, "CustInfo.userChannelStatics");// 渠道星级数据统计-渠道用户使用
            reportType.put(13, "CustInfo.custdebtlimitdataStatics");// 日内部数据统计（额度）报表
            reportType.put(14, "CustInfo.channeldebtlimitdataStatics");// 分配来源统计（额度）报表
            reportType.put(15, "OtherStatics.userCostStatics");// 用户数据成本统计
            reportType.put(16, "OtherStatics.eliteListEmpStatics");// 精英榜-个人
            reportType.put(17, "OtherStatics.eliteListDepartStatics");// 精英榜-二级部门
            reportType.put(86, "OtherStatics.eliteListDepartStatics4");// 精英榜-三级部门
            reportType.put(18, "OtherStatics.eliteListAreaStatics");// 精英榜-一级部门
            reportType.put(23, "OtherStatics.eliteListSubOrgStatics");// 精英榜-分公司
            reportType.put(19, "OtherStatics.userCostChannelStatics");// 用户数据渠道成本统计
            reportType.put(20, "CustInfo.userURLTrackStatics");// 渠道数据URL统计-渠道用户使用, 20201216: 新增 --
            //reportType.put(21, "CustInfo.userApplyTimeStatics");// 渠道数据申请时间统计-渠道用户使用, 20201216: 新增 --
            //reportType.put(22, "CustInfo.userDistributeTimeStatics");// 渠道数据分配时间统计-渠道用户使用, 20201216: 新增 --
            reportType.put(21, "CustInfo.userTimeTypeStatics");// 渠道数据申请时间、分配时间统计-渠道用户使用, 20201216: 新增 --
            reportType.put(40, "OtherStatics.channelLocalStatics");// 渠道是否本地人标识统计-20210406
            reportType.put(41, "TransactionDataStatics.visitDataStatics");// 成交客户统计-上门&重复上门
            reportType.put(42, "TransactionDataStatics.signDataStatics");// 成交客户统计-签约&重复签约
            reportType.put(43, "TransactionDataStatics.loanDataStatics");// 成交客户统计-放款&重复放款
            reportType.put(44, "TransactionDataStatics.introduceDataStatics");// 成交客户统计-放款&重复放款
            reportType.put(45, "TransactionDataStatics.specialDataStatics");// 成交客户统计-特殊重复成功
            
            //reportType.put(50, "transactionCustPortrait.list");// 成交客户画像-20210514
            reportType.put(51, "TransactionCustPortrait.AgeSectionStatics");// 成交客户画像-年龄区间
            reportType.put(52, "TransactionCustPortrait.SexSectionStatics");// 成交客户画像-性别
            reportType.put(53, "TransactionCustPortrait.NeedAmountSectionStatics");// 成交客户画像-需求金额区间
            reportType.put(54, "TransactionCustPortrait.LocalPersonStatics");// 成交客户画像-是否本地人
            reportType.put(55, "TransactionCustPortrait.SelfLoanStatics");// 成交客户画像-自己放款&转介绍放款

            reportType.put(60, "OtherStatics.introduceVisitStatics");// 转介绍上门统计

            reportType.put(70, "QrcodeInfo.qrcodeDataStatics");// 二维码数据统计

            reportType.put(22, "CustInfo.orgDistributeDataStatics");// 机构分配来源统计-20210606


            reportType.put(80, "CustInfo.orgChannelTypeDataStatics");// 媒体分配来源统计报表  部门, 202404
            reportType.put(81, "CustInfo.perChannelTypeDataStatics");// 媒体分配来源统计报表  个人, 202404

            /**机构报表数据查询**/
            reportType.put(1001, "CompanyDataReport.findCompanyOrganizationList");// 机构部门查询
            reportType.put(1002, "CompanyDataReport.findCompanyUserList");// 机构用户查询
            reportType.put(1003, "CompanyDataReport.findCompanyCustInfoList");// 机构客户查询
            reportType.put(1004, "CompanyDataReport.findCompanyCustVistList");// 机构来访登记查询
            reportType.put(1005, "CompanyDataReport.findCompanyIncomingList");// 机构进件查询
            reportType.put(1006, "CompanyDataReport.findCompanyCustFollowList");// 机构客户跟进记录查询
            reportType.put(1007, "CompanyDataReport.findCompanyCustDelList");// 机构客户删除记录查询
        }
	}
}
